В вендинговой индустрии существует два основных протокола для вендинговых автоматов:
MDB (Multi Drop Bus) — самый популярный и широко применяемый в современных европейских и китайских вендинговых автоматах, а также в автомойках и развлекательных аппаратах и т.д.
Протокол MDB (Multi-Drop Bus) был разработан ассоциацией NAMA (National Automatic Merchandising Association, США) как единый стандарт взаимодействия между вендинговыми автоматами и периферийными устройствами — монетоприёмниками, купюроприёмниками, безналичными платёжными терминалами и другими модулями.
На протяжении многих лет стандарт несколько раз обновлялся, чтобы учитывать развитие технологий и новых платёжных решений.
В настоящий момент:
Executive (Protocol A) — более простой протокол, где управляющим устройством обычно выступает монетоприемник.
Гораздо реже встречаются протоколы:
MDB использует последовательную шину передачи данных, к которой предъявляются особые технические требования. Основные характеристики включают:
Скорость передачи данных: фиксированная скорость 9600 бод — по современным стандартам относительно мало, но достаточно для стабильной работы торгового оборудования.
Формат данных: используется 9-разрядный фрейм данных, где девятый бит используется для маркировки передаваемых данных определенным образом в зависимости от отправителя.
Электрические характеристики: работает от сети 24 В постоянного тока, обеспечивая надежную подачу питания на периферийные устройства.
Тип разъёма: стандартный 2-х рядный 6-контактный интерфейс Molex Mini-Fit Jr 6-Way для подключения к MDB, включая линии питания, заземления и передачи данных.
Механизм опроса: контроллер вендингового автомата (VMC) непрерывно опрашивает подчиненные устройства - запрашивает данные и отправляет команды для синхронной работы.
Все устройства подключаются к общей шине передачи данных, то есть объединяются одним проводом. Управление на шине осуществляет Master-устройство, а все остальные устройства работают в режиме Slave.
Обычно в роли MDB-Master выступает вендинговый автомат. В некоторых конфигурациях это может быть монетоприемник (при использовании протокола Executive) или модем телеметрии.
К типичным Slave-устройствам относятся: терминал безналичной оплаты, купюроприемник, монетоприемник, модем телеметрии и другое периферийное оборудование.
Подключение по MDB

Подключение по Executive через монетоприемник

Подключение по Executive через модем телеметрии

Возможны также варианты подключения безналичных устройств через специальные RS232-MDB конвертеры

Учитывайте, что из-за особенностей физического интерфейса протокол MDB чувствителен к изменениям тока. Конструктивные изменения в аппаратной части MDB Master на стороне вендингового автомата (например, замена номиналов резисторов в цепи) могут привести к рассинхронизации при обмене данными с другими устройствами на шине. Особенно это критично для устройств, чувствительных к такого рода моментам из-за собственной реализации Slave.
Схема подключения зависит от протокола, в котором работает автомат:
- VMC является Master-устройством на шине.
- Терминал Vendotek выступает как Slave-устройство и подключается между автоматом и другими периферийными устройствами (купюроприемник, монетоприемник и т.д.) по общей шине.
- Цены на товары задаются в автомате.
- Master-устройством выступает монетоприемник, который взаимодействует с автоматом через протокол Executive
- Терминал Vendotek также является Slave-устройством и подключается к монетоприемнику через интерфейс MDB
- Цены могут задаваться либо в монетнике (режим Price Holding), либо в автомате (режим Executive Standard)
В протоколе MDB терминал безналичной оплаты Vendotek является cashless slave-устройством. Основные параметры настройки включают:
Рассмотрим каждый из этих параметров подробнее.
На одной MDB-шине может быть одновременно подключено не более 2 cashless-устройств.
Каждому из них выделяется свой адрес, по которому с ними взаимодействует Master-устройство (VMC или монетоприемник при подключении по Executive):
Обычно терминал Vendotek настраивается как Cashless #2, если:
При запросе продажи от Master-устройства сумма покупки передаётся без учёта копеек. Терминал безналичной оплаты интерпретирует эту сумму в соответствии с установленной десятичной точкой.
Часто возникает проблема несоответствия десятичной точки на аппарате и безналичном устройстве. Например, если на MDB Master устройстве настроили цену товара 100 с десятичной точкой “0”, а на безналичном устройстве установлена “2”, то в результате безналичное устройство будет интерпретировать сумму как 1. Поэтому чтобы избежать ошибок, десятичная точка на терминале и на автомате должны совпадать.
Уровень функциональности определяет, какие дополнительные возможности поддерживает устройство. Терминалы Vendotek поддерживают основные возможности уровня функциональности Level 3. Уровни условно можно разделить следующим образом:
При продаже за наличные покупатель сразу вносит сумму, которая и становится его реальным кредитом, в рамках которого он может совершить покупку.
В случае безналичной оплаты терминал некоторым образом «обманывает» аппарат или эмулирует наличие средств - отправляет в автомат условную сумму, называемую «виртуальным» кредитом. Это необходимо для начала сессии покупки, особенно при работе в Level 1 или Level 2. Терминал сообщает автомату, что средства есть, ещё до фактического списания с карты.
После передачи «виртуального» кредита клиент может выбрать товар, стоимость которого не должна превышать эту сумму. Обычно размер «виртуального» кредита устанавливается на уровне 500 рублей. Величина “виртуального” кредита в настройках аппарата должна быть больше, чем на терминале.
Устройство MDB-Master регулярно отправляет команды POLL по протоколу MDB всем подключенным Slave-устройствам.
Частота отправки POLL-команд (от англ. poll - опрос) может варьироваться от 25 до 200 мс. Стоит учитывать, что слишком частый опрос может мешать Slave-устройству обрабатывать команды POLL — ответы будут задерживаться. Слишком редкий опрос, наоборот, может замедлить работу оборудования, например, снизить скорость приёма монет или купюр. Оптимальная рекомендуемая частота опроса для всех устройств — 125–200 мс.
После того как MDB-Master выдал команду, он должен дождаться полного ответа от безналичного устройства, прежде чем отправлять следующую.
В качестве ответа Slave-устройство может передавать:
а) сразу после команды
b) сначала подтвердить получение команды с помощью ACK, а затем передать данные.
После получения ACK от устройства VMC должен продолжить посылать POLL-запросы до тех пор, пока безналичное устройство не ответит данными или пока не истечет максимальное время отклика приложения (заданное в READER CONFIGURATION).
По умолчанию максимальное время ожидания ответа от безналичного устройства составляет 5 миллисекунд. За это время устройство должно отправить ACK, передать данные или отправить NAK (от англ. negative acknowledgement - отрицательное подтверждение).
Если Slave-устройство долго не отвечает, VMC должен завершить все внутренние процессы, а затем сбросить соединение на шине с помощью команды RESET. Перед этим рекомендуется выдержать паузу не менее чем в 10 раз превышающую значение максимального времени отклика.
Если VMC не может установить связь с устройством в течение «максимального времени отклика приложения», он должен пытаться сбросить это устройство раз в 10 секунд и продолжить работу с другим доступным Slave-устройством, которое все еще отвечает на запросы..
Если команда требует возврата средств (отмена оплаты), VMC должен ожидать ответа не менее 30 секунд, если иное не указано. Во время проведения отмены терминал не отвечает на запросы VMC. Как только автомат получает ответ на очередной POLL, он может сделать вывод о том, что отмена завершена.
После начала опроса устройств MDB Master выполняет инициализацию подключенных Slave-устройств на шине. Во время выполнения команд инициализации VMC определяет, какие дополнительные функции поддерживаются периферийными устройствами, и включает только те, которые будут использоваться.
До активации конкретной функции периферийное устройство обязано игнорировать команды, относящиеся к этой функции, и не отвечать на них. Например, команда уровня периферийной функциональности Level 3 может быть отправлена только Slave-устройству, поддерживающему этот уровень. Она не должна передаваться устройствам, работающим на Level 1 или Level 2.
Периферийное устройство также обязано отправлять только те ответы, которые поддерживаются VMC: ответ Level 3 должен передаваться только VMC, поддерживающему этот уровень или выше. В качестве уровня обмена выбирается наименьшее значение из двух - уровня автомата и уровня периферийного устройства
Так как вендинговый автомат может запуститься быстрее терминала, терминал не успевает ответить на первые команды POLL и не присылает запрос JUST RESET. Поэтому рекомендуется отправлять RESET после первого полученного ответа на POLL.
VMC сбрасывает соединение на шине. Терминал подтверждает сброс командой JUST RESET.
VMC сообщает поддерживаемый уровень функциональности. Терминал отвечает командой READER CONFIG DATA, передавая сведения о себе.
VMC сообщает терминалу максимальную и минимальную возможную цену товара.
VMC передает информацию о себе. Терминал отвечает командой PERIPHERAL ID, сообщая модель, производителя и поддерживаемые функции.
VMC сообщает терминалу информацию о включении дополнительных функций Level 3.
Терминал переводится в рабочий режим и готов принимать безналичную оплату.
Иногда встречаются аппараты/монетоприёмники, которые не всегда присылают команду READER ENABLE.
Скачать Полную версию этапов инициализации в pdf.
В торговых автоматах существует два режима выдачи товаров: мультипродажа и одиночная продажа.
На практике чаще используется именно одиночная продажа, поскольку реализация и поддержка мультипродаж технически сложнее.
позволяет выбрать и оплатить несколько товаров за одну транзакцию. Обычно реализуется через интерфейс с «корзиной», что повышает удобство и скорость обслуживания, но требует более сложной логики работы автомата и системы оплаты
покупатель оплачивает только один товар за раз. Это проще для реализации и подходит для автоматов с простым интерфейсом или продажей штучных товаров.
Процесс безналичной продажи представляет собой последовательный обмен запросами между торговым автоматом и платежным устройством.
Основной запрос — Vend Request (13 00H). После его отправки терминал переходит в режим ожидания оплаты (карта или QR). В запросе передаются всего два параметра:
В зависимости от настроек автомата может использоваться:
Если используется отдельный прайс-лист для безнала, важно убедиться, что цены указаны корректно. Например, по умолчанию стоимость товарной позиции может быть установлена на 0, и тогда автомат разрешит продажу на нулевую сумму. В результате такая покупка пройдет бесплатно, так как терминалу не нужно списывать средства.
Покупатель касается экрана терминала.
Терминал открывает сессию и отправляет запрос на VMC.
Покупатель выбирает товар на ТА.
ТА отправляет на терминал Vendotek запрос на списание средств.
Покупатель оплачивает товар, проводится операция с банком.
VMC ожидает результата транзакции:
терминал отвечает VEND APPROVED c информацией о сумме списания и ТА переходит к выдаче товара.
терминал сообщает об этом с помощью VEND DENIED — VMC завершает сессию (шаг 8)
Выдача товара
VMC сообщает об этом терминалу в запросе VEND SUCCESS с информацией об id продукта, который был выдан.
VMC отправляет на Vendotek команду на отмену транзакции, и терминал инициирует отмену ранее проведенной операции
Сессия закрывается.
1️⃣ Покупатель выбирает товар на ТА.
2️⃣ VMC (при работе VMC в MDB) или монетоприемник (при работе VMC в Executive) отправляет на терминал Vendotek запрос на списание средств с указанием суммы и номера ячейки/спирали товара.
3️⃣ Покупатель оплачивает товар — прикладывает или вводит банковскую карту, осуществляется транзакция.
4️⃣ VMC ожидает результата транзакции:
5️⃣ Если товар выдать не удалось (или закончился таймаут удержания выбора выбранного продукта), VMC отправляет на Vendotek команду на отмену транзакции, и терминал инициирует возврат средств.
Если выдача прошла успешно — VMC сообщает об этом терминалу.
6️⃣ Сессия закрывается
В соответствии с 54-ФЗ владельцы вендинговых немеханических автоматов обязаны предоставлять клиенту чек, например, в виде QR-кода.
Если фискализация выполняется на стороне безналичного терминала с использованием облачной или локальной кассы, терминал передает в кассу наименование проданного товара. Эти данные могут поступать в терминал из сервиса телеметрии или личного кабинета Vendotek. Для этого в личном кабинете используется планограмма товаров — таблица соответствия ID ячеек и названий товаров, которая настраивается и удаленно загружается в терминал.